#include<iostream>
// 菱形继承（多重继承）

using namespace std;


class A
{
    public:
    A(){}
    A(int a):m_a(a){}

    int m_a;
};

class B: public A
{
    public:
    B(){}
     B(int b):m_b(b),A(1){}
    int m_b;
};

class C:public A
{
    public:
    C(){}
    C(int c):m_c(c),A(2){}
     
    int m_c;

};

class D: public B,public C
{
    public:
    D(){}
    D(int d):m_d(d),B(1),C(2){}
    int m_d;

};


int main()
{   
    D d(3);

    


    return 0;
}